function createSearchFormWin(searchValue) {
	// start
	var searchFieldDs = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : DISPATCH_URL
		}),
		reader : new Ext.data.JsonReader({
			root : 'searchFields',
			id : 'id',
			fields : [ {
				name : 'name'
			}, {
				name : 'description'
			} ]
		})
	});
	searchFieldDs.baseParams = {
		cmd : 'searchConfig',
		'action' : 'findForCombo'
	};
	searchFieldCombo = new Ext.form.MultiComboBox({
		id : 'searchFieldCombo',
		name : 'searchFieldCombo',
		editable : false,
		displayField : 'description',
		valueField : 'name',
		labelSeparator : ':',
		displaySeparator : ' ',
		valueSeparator : ' ',
		mode : 'local',
		loadingText : 'loading...',
		store : searchFieldDs,
		hiddenName : 'test',
		triggerAction : 'all',
		emptyText : '可选多个...',
		fieldLabel : '搜索域',
		allowBlank : true
	});
	searchFieldDs.load({
		params : {
			sc : BestvSearch.sc
		}
	});
	var searchTypeDs = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : DISPATCH_URL
		}),
		reader : new Ext.data.JsonReader({
			root : 'types',
			id : 'id',
			fields : [ {
				name : 'id'
			}, {
				name : 'name'
			}, {
				name : 'description'
			} ]
		})
	});
	searchTypeDs.baseParams = {
		cmd : 'type',
		action : 'find'
	};
	searchTypeCombo = new Ext.form.MultiComboBox({
		id : 'searchTypeCombo',
		name : 'searchTypeCombo',
		editable : false,
		displayField : 'description',
		valueField : 'name',
		labelSeparator : ':',
		displaySeparator : ' ',
		valueSeparator : ' ',
		hiddenName : 'test',
		mode : 'local',
		store : searchTypeDs,
		triggerAction : 'all',
		emptyText : '可选多个',
		fieldLabel : '类型'
	});
	searchTypeDs.load({
		params : {
			sc : BestvSearch.sc
		}
	});
	var vtypeDs = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : DISPATCH_URL
		}),
		reader : new Ext.data.JsonReader({
			root : 'p_types',
			fields : [ {
				name : 'name'
			}, {
				name : 'code'
			} ]
		})
	});
	vtypeDs.baseParams = {
		'cmd' : 'keysubject',
		'action' : 'findPType'
	};
	vTypeCombo = new Ext.form.MultiComboBox({
		id : 'vTypeCombo',
		editable : false,
		name : 'vTypeCombo',
		displayField : "name",
		valueField : 'code',
		labelSeparator : ':',
		displaySeparator : ' ',
		valueSeparator : ' ',
		mode : 'local',
		hiddenName : 'test',
		store : vtypeDs,
		triggerAction : 'all',
		emptyText : '可选多个...',
		fieldLabel : '垂直分类'
	});
	vtypeDs.load({
		params : {
			sc : BestvSearch.sc
		}
	});
	timeFrom = new Ext.form.DateField({
		fieldLabel : '时间范围',// '<b style="color:red;">* </b>时间范围'
		id : 'fromTime',
		name : 'fromTime',
		format : "Y-m-d G:i"
	});
	timeTo = new Ext.form.DateField({
		hideLabel : true,
		labelWidth : 0,
		id : 'timeTo',
		name : 'timeTo',
		format : "Y-m-d G:i"
	});
	var searchInfoForm = null;
	searchInfoForm = new Ext.FormPanel(
			{
				labelAlign : 'right',
				border : false,
				region : 'north',
				labelWidth : 75,
				height : 100,
				margins : '2 0 0 0',
				frame : true,
				items : [
						{
							layout : 'column',
							items : [
									{
										columnWidth : .5,
										height : 30,
										layout : 'form',
										defaultType : 'textfield',
										defaults : {
											anchor : '99%'
										},
										items : [ new Ext.form.TextField(
												{
													fieldLabel : '<b style="color:red;">* </b> 关键字',
													id : 'skey',
													name : 'skey',
													listeners : {
														specialkey : function(
																field, e) {
															if (e.getKey() == e.ENTER) {
																if (!searchInfoForm
																		.getForm()
																		.isValid()) {
																	Ext.MessageBox
																			.alert(
																					TXT_common_hint,
																					'输入有误，请检查！');
																	return;
																}
																btnFind
																		.fireEvent('click');
															}
														}
													}
												}) ]
									},
									{
										columnWidth : .3,
										height : 30,
										layout : 'form',
										html : '<span><font color="blue" >*多个关键字之间用空格隔开</font></span>'
									} ]

						}, {
							layout : 'column',
							items : [ {
								columnWidth : .4,
								layout : 'form',
								defaults : {
									anchor : '99%'
								},
								items : [ searchFieldCombo ]
							}, {
								columnWidth : .4,
								layout : 'form',
								defaults : {
									anchor : '98%'
								},
								items : [ searchTypeCombo ]
							} ]
						}, {
							layout : 'column',
							items : [ {
								columnWidth : .4,
								layout : 'form',
								defaults : {
									anchor : '99%'
								},
								items : [ vTypeCombo ]
							}, {
								columnWidth : .236,
								layout : 'form',
								defaults : {
									anchor : '96%'
								},
								items : [ timeFrom ]
							}, {
								columnWidth : .01,
								layout : 'form',
								defaults : {
									anchor : '96%'
								},
								html : '~'
							}, {
								columnWidth : .155,
								layout : 'form',
								defaults : {
									anchor : '96%'
								},
								items : [ timeTo ]
							} ]
						} ]
			});
	// end form
	var btnFind = new Ext.Button({
		text : TXT_common_search,
		tooltip : TXT_common_search,
		iconCls : 'icoFind'
	});
	btnFind
			.on(
					'click',
					function() {
						// searchForManualBind();
						if (searchInfoForm.findById('skey').getValue() == '') {
							Ext.MessageBox.alert(TXT_common_hint,
									'输入有误，搜索关键字不能为空');
							return false;
						}
						var json = {
							"keywords" : "",
							"fields" : "",
							"filters" : []
						};
						if (searchTypeCombo.hiddenField.value != '')
							json.filters
									.push({
										"filterField" : "type",
										"filterValue" : searchTypeCombo.hiddenField.value
									});
						if (vTypeCombo.hiddenField.value != '')
							json.filters.push({
								"filterField" : "p_type",
								"filterValue" : vTypeCombo.hiddenField.value
							});
						var filterUpdateTime = 'min TO max';
						var tf = Ext.util.Format.date(timeFrom.getValue(),
								'Y-m-d G:i');
						var tt = Ext.util.Format.date(timeTo.getValue(),
								'Y-m-d G:i');
						if (tf != '') {
							var tfs = tf.split(' ');
							if (tfs.length != 2) {
								Ext.MessageBox.alert(TXT_common_hint,
										'时间格式错误，正确格式为：yyyy-MM-dd HH:mm');
								return false;
							}
							tfs[0] = tfs[0].replace(/-/g, '');
							tfs[1] = tfs[1].replace(':', '');
							if (tfs[1].length == 3)
								tfs[1] = '0' + tfs[1];
							tf = tfs[0] + tfs[1];
							filterUpdateTime = filterUpdateTime.replace("min",
									tf);
						}
						if (tt != '') {
							var tts = tt.split(' ');
							if (tts.length != 2) {
								Ext.MessageBox.alert(TXT_common_hint,
										'时间格式错误，正确格式为：yyyy-MM-dd HH:mm');
								return false;
							}
							tts[0] = tts[0].replace(/-/g, '');
							tts[1] = tts[1].replace(':', '');
							if (tts[1].length == 3)
								tts[1] = '0' + tts[1];
							tt = tts[0] + tts[1];
							filterUpdateTime = filterUpdateTime.replace("max",
									tt);
							if (tt < tf) {
								Ext.MessageBox.alert(TXT_common_hint,
										'时间错误，起始时间应该小于结束时间！');
								return false;
							}
						}
						if (filterUpdateTime !== 'min TO max')
							json.filters.push({
								"filterField" : "updateTime",
								"filterValue" : filterUpdateTime
							});
						json.keywords = searchInfoForm.findById('skey')
								.getValue();
						json.fields = searchFieldCombo.hiddenField.value;
						searchDs.removeAll();
						searchDs.baseParams = {
							cmd : 'search',
							action : 'searchPreview',
							json : Ext.util.JSON.encode(json),
							sc : BestvSearch.sc
						};
						searchDs
								.load({
									params : {
										start : 0,
										limit : 10
									},
									callback : function(r, options, success) {
										if (searchDs.reader.jsonData == '') {
											Ext.MessageBox
													.alert(
															TXT_common_hint,
															TXT_common_relogin,
															function() {
																window.location.href = '../eni/common/logout.jsp';
															});
											return;
										}
									}
								});
					});
	var btnClear = new Ext.Button({
		text : TXT_common_reset,
		tooltip : TXT_common_reset,
		iconCls : 'icoDel'
	});
	btnClear.on('click', function() {
		searchInfoForm.getForm().reset();
	});
	// start grid
	var searchDs = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : DISPATCH_URL
		}),
		reader : new Ext.data.JsonReader({
			root : 'results',
			totalProperty : 'totalCount',
			id : 'id',
			fields : [ {
				name : 'id'
			}, {
				name : 'name'
			}, {
				name : 'type'
			}, {
				name : 'p_type'
			}, {
				name : 'code'
			}, {
				name : 'updateTime'
			}, {
				name : 'keywords'
			}, {
				name : 'tags'
			}, {
				name : 'actors'
			}, {
				name : 'directors'
			}, {
				name : 'description'
			} ]
		})
	});

	var searchSm = new Ext.grid.CheckboxSelectionModel();
	searchSm.on('rowselect', function(sm, index, record) {
		infoDs.add(record);
		infoSm.selectLastRow(true);
	});
	searchSm.on('rowdeselect', function(sm, index, record) {
		infoDs.remove(record);
	});
	var searchCm = new Ext.grid.ColumnModel([
			new Ext.grid.RowNumberer(),
			searchSm,
			{
				header : TXT_info_name,
				dataIndex : 'name',
				width : 220,
				renderer : function(v) {
					if (v.length > 12)
						return "<div ext:qtip='" + v + "'>"
								+ v.substring(0, 12) + "..</div>";
					return v;
				}
			},
			{
				header : TXT_info_type,
				dataIndex : 'type',
				width : 55
			},
			{
				header : TXT_info_p_type,
				dataIndex : 'p_type',
				width : 68
			},
			{
				header : '更新时间',
				dataIndex : 'updateTime',
				width : 92,
				renderer : function(v) {
					return v.substring(2, 10);
				}
			},
			{
				header : '关键字',
				dataIndex : 'keywords',
				width : 172,
				renderer : function(v) {
					if (v.length > 7)
						return "<div ext:qtip='" + v + "'>" + v.substring(0, 7)
								+ "..</div>";
					return v;
				}
			},
			{
				header : '标签',
				dataIndex : 'tags',
				width : 70,
				renderer : function(v) {
					if (v.length > 4)
						return "<div ext:qtip='" + v + "'>" + v.substring(0, 4)
								+ "..</div>";
					return v;
				}
			},
			{
				header : '演员',
				dataIndex : 'actors',
				width : 60,
				renderer : function(v) {
					if (v.length > 3)
						return "<div ext:qtip='" + v + "'>" + v.substring(0, 3)
								+ "..</div>";
					return v;
				}
			},
			{
				header : '导演',
				dataIndex : 'directors',
				width : 60,
				renderer : function(v) {
					if (v.length > 3)
						return "<div ext:qtip='" + v + "'>" + v.substring(0, 3)
								+ "..</div>";
					return v;
				}
			}, {
				header : TXT_info_description,
				dataIndex : 'description',
				width : 10,
				renderer : function(v) {
					return "<div ext:qtip='" + v + "'>..</div>";
				}
			} ]);
	var searchGrid = new Ext.grid.GridPanel({
		border : false,
		region : 'center',
		ds : searchDs,
		cm : searchCm,
		sm : searchSm,
		stripeRows : true,
		tbar : [ btnFind, '-', btnClear ],
		viewConfig : {
			forceFit : true
		},
		loadMask : true,
		bbar : new Ext.PagingToolbar({
			pageSize : 10,
			height : 20,
			store : searchDs,
			displayInfo : true,
			displayMsg : TXT_common_paging,
			emptyMsg : TXT_common_no
		})
	});
	// end grid
	var win = null;
	if (!win) {
		win = new Ext.Window({
			title : TXT_manual_info_search,
			width : document.body.clientWidth * 0.88,
			height : document.body.clientHeight * 0.85,
			autoScroll : false,
			layout : 'border',
			border : false,
			minimizable : false,
			maximizable : false,
			resizable : false,
			modal : true,
			layoutConfig : {
				animate : false
			},
			items : [ searchInfoForm, searchGrid ],
			buttonAlign : 'center',
			buttons : [ {
				text : TXT_common_OK,
				handler : function() {
					win.close();
				}
			} ]
		});
	}
	win.show();
}
